interface UserA {
  name: string
  age: number
}
// Partial
type test = Partial<UserA>
type test1 = PratialUserA<UserA>

//转换完成之后的结果
type test2 = {
  name?: string | undefined
  age?: number | undefined
}

//原理
type PratialUserA<T> = {
  [P in keyof T]?: T[P];//?如果这个属性存在 
  // keyof 关键字用于获取类型 T 的所有公共属性键的联合类型。
  // 例如，如果 T 是一个类型 { a: number; b: string }，那么 keyof T 的结果就是 "a" | "b"。
}

